home *** CD-ROM | disk | FTP | other *** search
Text File | 1995-08-10 | 3.6 KB | 127 lines | [TEXT/MPS ] |
- (*
- File: FixMath.mod
-
- Contains: Types.Fixed Math Interfaces.
-
- Version: Technology: System 7.5
- Package: Universal Interfaces 2.0 in “MPW Latest” on ETO #17
-
- Copyright: © 1984-1995 by Apple Computer, Inc.
- All rights reserved.
-
- Bugs?: If you find a problem with this file, use the Apple Bug Reporter
- stack. Include the file and version information (from above)
- in the problem description and send to:
- Internet: apple.bugs.applelink.apple.com
- AppleLink: APPLE.BUGS
-
- *)
-
- (*$TAGS-*)
- (*$CALLING PASCAL*)
- MODULE FixMath;
-
- IMPORT SYSTEM, Types;
-
- (* $PUSH*)
- (* $ALIGN MAC68K*)
- (* $LibExport+*)
-
- CONST
- fixed1* = $00010000;
- fract1* = $40000000;
- positiveInfinity* = $7FFFFFFF;
- negativeInfinity* = $80000000;
-
-
- PROCEDURE Fix2Frac*(x: Types.Fixed): Types.Fract;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A841;
- (*$END*)
- PROCEDURE Fix2Long*(x: Types.Fixed): LONGINT;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A840;
- (*$END*)
- PROCEDURE Long2Fix*(x: LONGINT): Types.Fixed;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A83F;
- (*$END*)
- PROCEDURE Frac2Fix*(x: Types.Fract): Types.Fixed;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A842;
- (*$END*)
- PROCEDURE FracMul*(x: Types.Fract; y: Types.Fract): Types.Fract;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A84A;
- (*$END*)
- PROCEDURE FixDiv*(x: Types.Fixed; y: Types.Fixed): Types.Fixed;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A84D;
- (*$END*)
- PROCEDURE FracDiv*(x: Types.Fract; y: Types.Fract): Types.Fract;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A84B;
- (*$END*)
- PROCEDURE FracSqrt*(x: Types.Fract): Types.Fract;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A849;
- (*$END*)
- PROCEDURE FracSin*(x: Types.Fixed): Types.Fract;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A848;
- (*$END*)
- PROCEDURE FracCos*(x: Types.Fixed): Types.Fract;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A847;
- (*$END*)
- PROCEDURE FixATan2*(x: LONGINT; y: LONGINT): Types.Fixed;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A818;
- (*$END*)
- (*$IF GENERATINGPOWERPC *)
- PROCEDURE WideAdd*(VAR target: wide; (*CONST*)VAR source: wide): WidePtr; C;
- PROCEDURE WideCompare*((*CONST*)VAR target: wide; (*CONST*)VAR source: wide): INTEGER; C;
- PROCEDURE WideNegate*(VAR target: wide): WidePtr; C;
- PROCEDURE WideShift*(VAR target: wide; shift: LONGINT): WidePtr; C;
- PROCEDURE WideSquareRoot*((*CONST*)VAR source: wide): LONGINT; C;
- PROCEDURE WideSubtract*(VAR target: wide; (*CONST*)VAR source: wide): WidePtr; C;
- PROCEDURE WideMultiply*(multiplicand: LONGINT; multiplier: LONGINT; VAR target: wide): WidePtr; C;
- (* returns the quotient *)
- PROCEDURE WideDivide*((*CONST*)VAR dividend: wide; divisor: LONGINT; VAR remainder: LONGINT): LONGINT; C;
- (* quotient replaces dividend *)
- PROCEDURE WideWideDivide*(VAR dividend: wide; divisor: LONGINT; VAR remainder: LONGINT): WidePtr; C;
- PROCEDURE WideBitShift*(VAR src: wide; shift: LONGINT): WidePtr; C;
- (*$END*)
- (*$IF GENERATING68K AND NOT GENERATING68881 *)
- (*•• PROCEDURE Frac2X*(x: Types.Fract): Types.double_t;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A845;
- (*$END*)
- PROCEDURE Fix2X*(x: Types.Fixed): double_t;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A843;
- (*$END*)*)
- (*•• PROCEDURE X2Fix*(x: Types.double_t): Types.Fixed;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A844;
- (*$END*)*)
- (*•• PROCEDURE X2Frac*(x: Types.double_t): Types.Fract;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $A846;
- (*$END*)*)
- (*$ELSE*)
- PROCEDURE Frac2X*(x: Types.Fract): double_t;
- EXTERNAL PASCAL;
- PROCEDURE Fix2X*(x: Types.Fixed): double_t;
- EXTERNAL PASCAL;
- PROCEDURE X2Fix*(x: double_t): Types.Fixed;
- EXTERNAL PASCAL;
- PROCEDURE X2Frac*(x: double_t): Types.Fract;
- EXTERNAL PASCAL;
- (*$END*)
-
- (* $ALIGN RESET*)
- (* $POP*)
-
- END FixMath.
-